/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package es.ugr.cursows.basededatos.impl;

import es.ugr.cursows.basededatos.BaseDatos;
import es.ugr.cursows.basededatos.exceptions.ElementoNoEnconrtradoException;
import es.ugr.cursows.basededatos.exceptions.ElementoRepetidoException;
import es.ugr.cursows.modelo.Usuario;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author pgarcia
 */
public class BaseDatosImpl implements BaseDatos {

   private  List<Usuario> usuarios;

   public BaseDatosImpl(){
    this.usuarios = new ArrayList<Usuario>();

   }

  public Usuario obtenerUsuario(String username) throws ElementoNoEnconrtradoException{
      for (Usuario usuario : usuarios) {
          if(usuario.getUsername().equals(username)){
              return usuario;
          }
      }
      throw new ElementoNoEnconrtradoException("Ningún usuario tiene con 'Nombre de usuario' "+username);
  }

  public void guardarUsuario(Usuario u) throws ElementoRepetidoException{
      controlIntegridad(u);
      this.usuarios.add(u);
  }

    private void controlIntegridad(Usuario u) throws ElementoRepetidoException {
        for (Usuario usuario : usuarios) {
            if(usuario.getUsername().equals(u.getUsername())){
                throw new ElementoRepetidoException("Existe ya un usuario con el mismo 'Nombre de usuario'");
            }
        }
    }

    public List<Usuario> listarUsuarios() {
        return new ArrayList<Usuario>(usuarios);
    }

  
}
